home *** CD-ROM | disk | FTP | other *** search
/ MacTech 1 to 12 / MacTech-vol-1-12.toast / Source / MacTech® Magazine / Volume 11 - 1995 / 11.02 Feb 95 / Yenta / Erics C++ Libraries / Interface Classes / CPPWindow.h < prev    next >
Encoding:
C/C++ Source or Header  |  1996-04-04  |  2.9 KB  |  104 lines  |  [TEXT/KAHL]

  1. /***************************************************** IMPLEMENTATION
  2.     DATE:    9/20/93
  3.     AUTHOR: Eric R. Rosé
  4.  
  5.     CLASS:  CPPWindow
  6.     
  7.     SUPERCLASS: CPPObjectList
  8.     
  9.         This C++ class manages a Macintosh window; it is subclassed
  10.         from an object list so that it can keep track of all of the
  11.         objects within the window
  12.         
  13.     
  14. ********************************************************************/
  15.  
  16. #pragma once
  17.  
  18. #include <CPPObjectList.h>
  19.  
  20. class CPPWindowManager;
  21. class CPPVisualObject;
  22.  
  23. class CPPWindow : public CPPObjectList{
  24.         friend    class CPPWindowManager;
  25.  
  26. public:
  27.     Boolean    modalDone;
  28.     Boolean    modalResult;    // TRUE if OK, FALSE if Cancel
  29.  
  30.             CPPWindow (CPPWindowManager *theManager,
  31.                        Rect *bounds, StringPtr title, Boolean isVisible,
  32.                        short windowKind, Boolean hasGoAway, short RefCon,
  33.                        Boolean isModal = FALSE, Boolean isColor = TRUE,
  34.                        short windowFont = geneva, short windowSize = 9);
  35.             CPPWindow (CPPWindowManager *theManager, short ResID,
  36.                        Boolean isModal = FALSE,
  37.                        Boolean isColor = TRUE, short windowFont = geneva, 
  38.                        short windowSize = 9);
  39.             ~CPPWindow (void);
  40.             
  41.     virtual    char     *ClassName (void);
  42.  
  43.     virtual    Boolean    DoCommand (short commandID);
  44.  
  45.     void    DoModalWindow (void);
  46.     void    EndModalWindow (Boolean endResult);
  47.     
  48.     void    Show (Boolean doShowWindow);
  49.     Boolean    Do (EventRecord *theEvent);
  50.     void    DoIdle (void);
  51.     void    Update (EventRecord *theEvent);
  52.     void    Close (void);
  53.     void    Open (void);
  54.     WindowPtr    GetWindow (void);
  55.     
  56.     CPPVisualObject     *GetTarget (void);
  57.     void    MakeTarget (CPPVisualObject *theObject);
  58.     Boolean    MakeNextTarget (void);
  59.     Boolean    MakePreviousTarget (void);
  60.  
  61.     Boolean IsColorWindow (void);
  62.     Boolean    IsModalWindow (void);
  63.     Boolean    WindowVisible (void);
  64.     Boolean    WindowActive (void);
  65.  
  66.     void    StartManagingObject (CPPVisualObject *theObject);
  67.     void    StopManagingObject (CPPVisualObject *theObject);
  68.     virtual    void    RefreshItemStates (void);
  69.     
  70.     void    SetMinMaxSize (short minWidth, short minHeight,
  71.                             short maxWidth, short maxHeight);
  72.     void    SetZoomedOutSize (short maxWidth, short maxHeight);
  73.     
  74. protected:
  75.     WindowPtr    theWindow;
  76.     Boolean    WisVisible;
  77.     Boolean    WisActive;
  78.     CPPWindowManager    *ourManager;
  79.     CPPVisualObject        *currentTarget;
  80.     
  81.     virtual    void    Activate (void);
  82.     virtual    void    Deactivate (void);
  83.     virtual void    DoUserClick (EventRecord *theEvent);
  84.     virtual void    DoUserUpdate (void);
  85.     virtual void    DoUserIdle (void);
  86.     virtual Boolean    DoUserKey (EventRecord *theEvent);
  87.     virtual    void    DoUserChangeSize (short newWidth, short newHeight);
  88.     
  89. private:
  90.     Boolean    isCWindow;
  91.     Boolean isModalWindow;
  92.     short    minWidth, minHeight,
  93.             maxWidth, maxHeight;
  94.             
  95.     void    MakeCPPWindow (CPPWindowManager *theManager,
  96.                            short windowFont, short windowSize);
  97.     void    DoContentClick (EventRecord *theEvent);
  98.     void    DoDragClick (EventRecord *theEvent);
  99.     void    DoZoomClick (EventRecord *theEvent, short thePart);
  100.     void    DoGoAwayClick (EventRecord *theEvent);
  101.     void    DoGrowClick (EventRecord *theEvent);
  102.     Boolean    DoClick (EventRecord *theEvent);
  103. };
  104.